Static, instructie

       

Gebruik deze instructie op procedureniveau om variabelen te declareren en geheugenruimte toe te wijzen. De variabelen die u declareert met de instructie Static, behouden hun waarde zolang de programmacode wordt uitgevoerd.

Syntaxis

Static varnaam[([subscripts])] [As [New] type] [, varnaam[([subscripts])] [As [New] type]] . . .

De syntaxis van de instructie Static bevat de volgende onderdelen:

Onderdeel Beschrijving
Varnaam Vereist. De naam van de variabele. Voor deze naam gelden de standaardregels voor naamgeving van een variabele.
subscripts Optioneel. Dimensies van een matrixvariabele. U kunt maximaal 60 meervoudige dimensies declareren. Voor het argument subscripts geldt de volgende syntaxis:

[laagste To] hoogste [,[laagste To] hoogste] . . .

Als u de benedengrens van een matrix niet expliciet opgeeft met laagste, wordt deze bepaald door de instructie Option Base. De benedengrens is nul als u de instructie Option Base niet hebt opgegeven.

New Optioneel. Een sleutelwoord waarmee u impliciet een object kunt maken. Als u New gebruikt bij het declareren van de objectvariabele, wordt een nieuw object gemaakt met de eerste verwijzing naar het object, zodat u niet de instructie Set nodig hebt om een objectverwijzing toe te wijzen. U kunt met het sleutelwoord New geen variabelen van een intrinsiek gegevenstype maken of afhankelijke objecten declareren.
type Optioneel. Het gegevenstype van de variabele. Toegestane typen zijn: Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (momenteel niet ondersteund), Date, String, (voor tekenreeksen met variabele lengte), String * lengte (voor tekenreeksen met vaste lengte), Object, Variant, een door de gebruiker gedefinieerd type of een objecttype. Gebruik voor elke variabele die u declareert een aparte component As type.

Notities

Zodra de programmacode van de module is gestart, behouden variabelen die zijn gedeclareerd met de instructie Static, hun waarde totdat de module opnieuw wordt ingesteld of gestart. In klassenmodules behouden variabelen die met de instructie Static zijn gedeclareerd hun waarde in elk klassenexemplaar totdat het exemplaar wordt vernietigd. In formuliermodules behouden statische variabelen hun waarde totdat het formulier wordt gesloten. Gebruik de instructie Static in niet-statische procedures om statische variabelen expliciet te declareren, die alleen binnen de procedure aanwezig zijn, maar waarvan de levensduur hetzelfde is als de module waarin de procedure is bepaald.

U gebruikt een instructie Static binnen een procedure om de gegevenstypen van een variabele te declareren die de waarde behoudt tussen procedureoproepen. Met de volgende instructie declareert u bijvoorbeeld een matrix van vaste grootte met integers:

Static EmployeeNumber(200) As Integer

De volgende instructie declareert een variabele voor een nieuw werkblad:

Static X As New Worksheet

Als het sleutelwoord New niet wordt gebruikt bij het declareren van een objectvariabele, moet de variabele die verwijst naar het object, worden toegewezen aan een bestaand object met behulp van de instructie Set voordat deze kan worden gebruikt. Totdat de gedeclareerde objectvariabele is toegewezen aan een object, heeft deze de speciale waarde Nothing, waarmee wordt aangegeven dat de variabele niet verwijst naar een bepaald object. Als u het sleutelwoord New gebruikt in de declaratie, wordt een versie van het object gemaakt voor de eerste verwijzing naar het object.

Als u geen gegevens- of objecttype opgeeft en er geen instructie Deftype in de module is opgenomen, is de variabele standaard van het type Variant.

Opmerking   De instructie Static en het sleutelwoord Static lijken op elkaar maar worden om verschillende redenen gebruikt. Als u een procedure declareert met het sleutelwoord Static (bijvoorbeeld Static Sub verkopen ()), wordt de geheugenruimte voor alle lokale variabelen binnen de procedure ΘΘn keer toegewezen en blijft de waarde van de variabelen behouden gedurende de tijd dat de programmacode wordt uitgevoerd. Voor niet-statische procedures wordt geheugenruimte voor variabelen telkens toegewezen wanneer een procedure wordt opgeroepen, en wordt geheugenruimte vrijgegeven wanneer de procedure wordt afgesloten. De instructie Static wordt gebruikt voor het declareren van specifieke variabelen binnen niet-statische procedures om de waarde van de variabelen te behouden zolang het programma wordt uitgevoerd.

Variabelen worden als volgt ge∩nitialiseerd: een numerieke variabele wordt ge∩nitialiseerd op 0, een tekenreeks met variabele lengte wordt ge∩nitialiseerd op een tekenreeks met een lengte nul ("") en een tekenreeks met vaste lengte wordt opgevuld met nullen. Een variabele Variant wordt ge∩nitialiseerd op Empty. Elk onderdeel van een door de gebruiker gedefinieerde variabele wordt ge∩nitialiseerd alsof het een afzonderlijke variabele betreft.

Opmerking   Als u de instructie Static in een procedure gebruikt, plaatst u deze instructie aan het begin van een procedure die een instructie Dim bevat.